export const getInputs = () => [[[1, 2, 0]], [[3, 4, -1, 1]], [[7, 8, 9, 11, 12]], [[1]]];

/**
 * **[41. 缺失的第一个正数](https://leetcode.cn/problems/first-missing-positive/)**
 *
 * 给你一个未排序的整数数组 `nums` ，请你找出其中没有出现的最小的正整数。
 *
 * 请你实现时间复杂度为 `O(n)` 并且只使用常数级别额外空间的解决方案。
 *
 * @param nums
 * @returns
 */
export default function (nums: number[]): number {
	const length = nums.length;

	const extra: number[] = new Array(length);
	for (const num of nums) {
		if (num > 0 && num <= length) {
			extra[num - 1] = num;
		}
	}

	let result = 1;
	while (result <= length) {
		if (extra[result - 1] !== result) break;
		result++;
	}

	return result;
}
